package util;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

/**
 * 1.简单的JDBC工具，将数据库的配置及常用操作getConnection与closeConnection封装起来 为使用者访问数据库提供一个统一的入口
 * 2.该工具需要JDBC4.0以上的包
 * 3.该类仅用于访问mysql数据库
 * 
 * @author lzx
 *
 */
public class JdbcUtil {
	private static String url = "jdbc:mysql://localhost:3306/fight_against_landlords?useUnicode=true&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=UTC&useUnicode=true&characterEncoding=UTF-8&useSSL=false";
//	private static String url = "jdbc:mysql://localhost:3306/fight_against_landlords?serverTimezone=GMT%2B8&amp;useSSL=false";
    /**
     * 数据库的账号
     */
	private static String userName = "root";
	/**
	 * 数据库的密码
	 */
    private static String password = "";


    
    /**
	 * 该方法用于数据库连接的Connection对象
	 * 
	 * @param coon Connection对象
	 * @throws SQLException
	 * @return Connection
	 */
    public static Connection getConnection() throws SQLException {
        Connection conn = null;
        System.out.println("正在连接数据库...");
        conn = DriverManager.getConnection(url, userName, password);
        System.out.println("数据库已连接!");
        return conn;
    }

    /**
	 * 该方法用于释放数据库连接的Connection对象
	 * 
	 * @param coon Connection对象
	 * @return void
	 */
    public static void closeConnection(Connection conn) {
        System.out.println("正在释放所有资源...");

        if (conn != null) {
            try {
                conn.close();
                conn = null;
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }

    }

    /**
	 * 该方法用于释放所有数据库连接资源
	 * 
	 * @param rs ResultSet对象
	 * @param st Statement对象
	 * @param coon Connection对象
	 * @return void
	 */
    public static void realeaseAll(ResultSet rs, Statement st, Connection conn) {
        if (rs != null) {
            try {
                rs.close();
                rs = null;
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
        if (st != null) {
            try {
                st.close();
                st = null;
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
        closeConnection(conn);
    }

}
